<?php

/**
* Class teia\webdev\php\adt\IDisplayableItem
* Core interface for displaying items
*
* @author Bernardo Quibiana
* @date created: 20111002
*
* @date modified: 20111003
* @modified: Bernardo Quibiana
*/

// namespace declaration: Abstract Data Types
namespace teia\webdev\php\adt;

interface IDisplayableItem {
// slide show: 620x320
// thumbnail:
// medium 
// full:

	/**
	 * Return the thumbnail URL;
	 * Tip on implementation: thumbnail ~ small image
	 */
	public function getThumbnail();
	
	/**
	 * Return the slide image URL;
	 * Tip on implementation: slide image ~ medium image
	 */
	public function getSlideImage();
	
	/**
	 * Return the small image URL.
	 */
	public function getSmallImage();
	
	/**
	 * Return the medium image URL.
	 */
	public function getMediumImage();
	
	/**
	 * Return the large image URL.
	 */
	public function getLargeImage();
	
	/**
	 * Return the text alternative to images.
	 */
	public function getAltText();
	
	/**
	 * Return the id of the html element (style sheet friendly); the specified id must be 
	 * on the html element of the displayble html code generated in generate() and written on display().
	 */
	public function getElementId();
	
	/**
	 * Return the class of the html element (style sheet friendly); the specified class must be 
	 * on the html element of the displayble html code generated in generate() and written on display().
	 */
	public function getElementClass();
	
	/**
	 * Return the displayable details about the item.
	 */
	public function getDetails();
	
	
	/**
	 * Return the html code for this item (script oriented).
	 */
	public function generate($context);
	
	/**
	 * Write the html code for displaying this item (web page oriented);
	 * Tip on implementation: echo $this->generate($context);
	 */
	public function display($context);
}

?>